package cn.italkcloud.cph.service;

import cn.italkcloud.cph.constants.ReportTimeRangeEnum;
import cn.italkcloud.cph.entity.VosCustomer;

import java.util.Date;

/**
 * @author dominate
 * @since 2024/7/9
 **/
public interface VosService {

    /**
     * 同步VOS用户信息
     */
    void syncCustomerAndFee();

    /**
     * 同步充值记录
     *
     * @param startDate 开始时间
     * @param endDate   结束时间
     */
    void syncRechargeFeeLog(Date startDate, Date endDate);

    /**
     * 修改客户账户信息
     *
     * @param apiUrl API地址
     * @param target 目标账户
     * @return 是否修改成功
     */
    boolean modifyCustomer(String apiUrl, VosCustomer target);

    /**
     * 计算报表
     *
     * @param startDate           开始时间
     * @param endDate             结束时间
     * @param reportTimeRangeEnum 时间范围
     */
    void calculateReport(Date startDate, Date endDate, ReportTimeRangeEnum reportTimeRangeEnum);

    /**
     * 合并报表数据
     *
     * @param startDate 开始时间
     * @param endDate   结束时间
     */
    void mergeReport(Date startDate, Date endDate);
}
